calendar: Remove day-selected-double-click signal
authorTimm Bäder <mail@baedert.org>
Fri, 7 Feb 2020 03:32:08 +0000 (04:32 +0100)
committerMatthias Clasen <mclasen@redhat.com>
Fri, 7 Feb 2020 18:16:32 +0000 (13:16 -0500)
It doesn't really make sense to treat double clicks here different than
single clicks (and is bad UX), and it also breaks switching months by
quickly trying to single-click the last/first days in the calendar.

gtk/gtkcalendar.c
tests/testcalendar.c

index 57631f770fd375a5333d1b1bfcb615d7b5fb0069..78a702aa73fdd1382ee51e62925d76752b68fd21 100644 (file)
@@ -150,7 +150,6 @@ enum {
 
 enum {
   DAY_SELECTED_SIGNAL,
-  DAY_SELECTED_DOUBLE_CLICK_SIGNAL,
   PREV_MONTH_SIGNAL,
   NEXT_MONTH_SIGNAL,
   PREV_YEAR_SIGNAL,
@@ -184,7 +183,6 @@ struct _GtkCalendarClass
   GtkWidgetClass parent_class;
 
   void (* day_selected)                 (GtkCalendar *calendar);
-  void (* day_selected_double_click)    (GtkCalendar *calendar);
   void (* prev_month)                   (GtkCalendar *calendar);
   void (* next_month)                   (GtkCalendar *calendar);
   void (* prev_year)                    (GtkCalendar *calendar);
@@ -423,21 +421,6 @@ gtk_calendar_class_init (GtkCalendarClass *class)
                   NULL,
                   G_TYPE_NONE, 0);
 
-  /**
-   * GtkCalendar::day-selected-double-click:
-   * @calendar: the object which received the signal.
-   *
-   * Emitted when the user double-clicks a day.
-   */
-  gtk_calendar_signals[DAY_SELECTED_DOUBLE_CLICK_SIGNAL] =
-    g_signal_new (I_("day-selected-double-click"),
-                  G_OBJECT_CLASS_TYPE (gobject_class),
-                  G_SIGNAL_RUN_FIRST,
-                  G_STRUCT_OFFSET (GtkCalendarClass, day_selected_double_click),
-                  NULL, NULL,
-                  NULL,
-                  G_TYPE_NONE, 0);
-
   /**
    * GtkCalendar::prev-month:
    * @calendar: the object which received the signal.
@@ -1061,36 +1044,24 @@ gtk_calendar_button_press (GtkGestureClick *gesture,
     return;
 
   day_month = priv->day_month[row][col];
+  day = priv->day[row][col];
 
-  if (n_press == 1)
-    {
-      day = priv->day[row][col];
-
-      if (day_month == MONTH_PREV)
-        calendar_set_month_prev (calendar);
-      else if (day_month == MONTH_NEXT)
-        calendar_set_month_next (calendar);
-
-      if (!gtk_widget_has_focus (widget))
-        gtk_widget_grab_focus (widget);
+  if (day_month == MONTH_PREV)
+    calendar_set_month_prev (calendar);
+  else if (day_month == MONTH_NEXT)
+    calendar_set_month_next (calendar);
 
-      if (button == GDK_BUTTON_PRIMARY)
-        {
-          priv->in_drag = 1;
-          priv->drag_start_x = x;
-          priv->drag_start_y = y;
-        }
+  if (!gtk_widget_has_focus (widget))
+    gtk_widget_grab_focus (widget);
 
-      calendar_select_and_focus_day (calendar, day);
-    }
-  else if (n_press == 2)
+  if (button == GDK_BUTTON_PRIMARY)
     {
-      priv->in_drag = 0;
-      if (day_month == MONTH_CURRENT)
-        g_signal_emit (calendar,
-                       gtk_calendar_signals[DAY_SELECTED_DOUBLE_CLICK_SIGNAL],
-                       0);
+      priv->in_drag = 1;
+      priv->drag_start_x = x;
+      priv->drag_start_y = y;
     }
+
+  calendar_select_and_focus_day (calendar, day);
 }
 
 static void
index 605177ef4935bd669e1930f3ccbab38c5dc2f9a7..91cfa9f20738b3fe1801f9a740a04c1d148addd8 100644 (file)
@@ -86,27 +86,6 @@ calendar_day_selected (GtkWidget    *widget,
   g_free (str);
 }
 
-static void
-calendar_day_selected_double_click (GtkWidget    *widget,
-                                         CalendarData *data)
-{
-  char *str;
-  guint day;
-  GDateTime *date;
-
-  str = calendar_date_to_string (data, "day-selected-double-click: %c");
-  calendar_set_signal_strings (str, data);
-  date = gtk_calendar_get_date (GTK_CALENDAR (data->calendar_widget));
-  day = g_date_time_get_day_of_month (date);
-
-  if (gtk_calendar_get_day_is_marked (GTK_CALENDAR (data->calendar_widget), day))
-    gtk_calendar_unmark_day (GTK_CALENDAR (data->calendar_widget), day);
-  else
-    gtk_calendar_mark_day (GTK_CALENDAR (data->calendar_widget), day);
-
-  g_date_time_unref (date);
-}
-
 static void
 calendar_prev_month (GtkWidget    *widget,
                           CalendarData *data)
@@ -222,9 +201,6 @@ create_calendar(void)
   g_signal_connect (calendar, "day-selected", 
                    G_CALLBACK (calendar_day_selected),
                    &calendar_data);
-  g_signal_connect (calendar, "day-selected-double-click", 
-                   G_CALLBACK (calendar_day_selected_double_click),
-                   &calendar_data);
   g_signal_connect (calendar, "prev-month", 
                    G_CALLBACK (calendar_prev_month),
                    &calendar_data);